package com.cykj.pos.mapper;

import com.cykj.common.core.domain.entity.SysUser;
import com.cykj.pos.domain.BizAgentOpenAccount;
import com.cykj.pos.domain.BizMerchant;
import com.cykj.pos.domain.dto.UseRegistrationDTO;
import com.cykj.pos.domain.dto.UseRegistrationEntityDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 1、统一商户入件Mapper接口
 *
 * @author weijianbo
 * @date 2021-09-01
 */
public interface BizUserAccountMapper {
  /**
   * 查询1、统一商户入件
   *
   * @param id 1、统一商户入件ID
   * @return 1、统一商户入件
   */
  public UseRegistrationDTO selectBizUserAccountById(Long id);

  public UseRegistrationDTO selectBizUserSetId(Long id);

  /**
   * @author: haoran
   * @date: 2022/7/29
   * 方法名称： 代理管理列表查询
   */
  public List<UseRegistrationDTO> selectBizUserAccountList(UseRegistrationEntityDTO useRegistrationEntityDTO);

  Long selectMerchId(Long userId);

  public List<UseRegistrationDTO> filtrationList(UseRegistrationDTO useRegistrationDTO);

  Long selectUserId(Long parentId);

  /**
   * 新增用户表1、统一商户入件
   *
   * @param sysUser 1、统一商户入件
   * @return 结果
   */
  public int insertBizUser(SysUser sysUser);
  /**
   * 新增费率表1、统一商户入件
   *
   * @param bizAgentOpenAccount 1、统一商户入件
   * @return 结果
   */
  public int insertBizAccount(BizAgentOpenAccount bizAgentOpenAccount);

  /**
   * 修改用户表1、统一商户入件
   *
   * @param sysUser 1、统一商户入件
   * @return 结果
   */
  public int updateBizUser(SysUser sysUser);
  /**
   * 修改费率表1、统一商户入件
   *
   * @param bizAgentOpenAccount 1、统一商户入件
   * @return 结果
   */
  public int updateBizAccount(BizAgentOpenAccount bizAgentOpenAccount);

  public int updateBizSetAccount(BizAgentOpenAccount bizAgentOpenAccount);

  /**
   * 删除1、统一商户入件
   *
   * @param id 1、统一商户入件ID
   * @return 结果
   */
  public int deleteBizUserAccountById(Long id);

  /**
   * 批量删除1、统一商户入件
   *
   * @param ids 需要删除的数据ID
   * @return 结果
   */
  public int deleteBizUserAccountByIds(Long[] ids);

  BizAgentOpenAccount getBizAgentOpenAccountByMerchId(Long merchId);

  String getPlusThreeAgentBy(Long accountId);

  List<BizMerchant> getAllChildMerchantByAccountId(Long accountId);

  void updateAccountPlusThreeByUserId(@Param("userId") Long userId, @Param("plusThree")String plusThree);
}
